home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / includes / ciprint.h < prev    next >
C/C++ Source or Header  |  1996-11-18  |  4KB  |  120 lines

  1. /**[f******************************************************************
  2.  *    CIPrint.h -- Printing interface
  3.  *
  4.  *    Copyright(C) 1996, Adobe Systems, Inc.
  5.  *
  6.  *    $Revision:   1.2  $
  7.  *
  8.  *
  9.  **********************************************************************/
  10. #ifndef __CIPRINT_H
  11. #define __CIPRINT_H
  12.  
  13. // Some data structures
  14. //
  15. //    One thing that developers needs to remember is that all the LPSTR
  16. //    fields defined bellow, developer needs to allocate the memory space
  17. //    and free the space themselve. 
  18. //
  19. //    Printer capabilities
  20. //
  21. typedef struct _printerCap {
  22.     unsigned short    isPSPrinter        : 1;    // Printer is PostScript printer
  23.     unsigned short    menuFeedOK         : 1;     // Capability to handle menu feed
  24.     unsigned short    custompaperOK    : 1;    // custom paper
  25.     unsigned short    duplexOK        : 1;    // duplex
  26.     unsigned short    colorOK            : 1;    // color
  27.     unsigned short    binaryOK        : 1;    // handle binary image
  28.     unsigned short    unused            : 10;
  29. } PMPrinterCaps;
  30.  
  31. //    Print document related parameters
  32. //
  33. #define PRINT_BOTH    0
  34. #define PRINT_EVEN    1
  35. #define PRINT_ODD    2
  36.  
  37. typedef struct _printDoc {
  38.     unsigned short    collate            : 1;    // 1 for collate
  39.     unsigned short    reverse            : 1;    // 1 for reverse order printing
  40.     unsigned short    proof            : 1;    // 1 for doing proof
  41.     unsigned short    blank            : 1;    // 1 for including blank page
  42.     unsigned short    independence    : 1;    // 1 for page independence
  43.     unsigned short    book            : 1;    // 1 for do book printing
  44.     unsigned short    bookspec        : 1;    // 0 for off, 1 for use settings of
  45.                                             // each pub. 0 for non-PS printer
  46.     unsigned short    orientation        : 1;    // 1 for wide, 0 for tall
  47.     unsigned short    spread            : 1;    // 1 for doing spread
  48.     unsigned short    doDropOuts        : 1;    // 1 for do drop outs
  49.     unsigned short    both            : 2;    // 0 for both, 1 for even, 2 for odd
  50.     unsigned short    doAllPages        : 1;    // 0 for page range and 1 for all pages
  51.     unsigned short    unused            : 3;
  52.     unsigned short    copies;                    // number of copies
  53.     char*            range;                    // page range to print
  54. } PMPrintDocParms;
  55.  
  56. //    Print paper related parameters
  57. //
  58.  
  59. #define SCALE_NORMAL    0
  60. #define SCALE_FIT        1
  61. #define SCALE_THUMBNAIL    2
  62.  
  63. #define TILING_NONE        0
  64. #define TILING_MANUAL    1
  65. #define TILING_AUTO        2
  66.  
  67. #define DUPLEX_NONE        0
  68. #define DUPLEX_SHORT    1
  69. #define DUPLEX_LONG        2
  70.  
  71. typedef struct _printPaper {
  72.     char*            size;                            // paper size
  73.     char*            source;                            // paper source
  74.     unsigned long    length;                            // paper length
  75.     unsigned long    width;                            // paper width
  76.     unsigned long    slowoffset;                        
  77.     unsigned long    fastoffset;            
  78.     short            tiling;                            // 0: no-tile; 1: manual; 2: auto
  79.     long            overlap;                        // overlap amount for tiling
  80.     short            scaletype;                        // 0: normal scaling; 1: reduce to fit; 2: thumbnail
  81.     short            scaleAmt;                        // scale amount, when scaletype is 2, it is the number of
  82.                                             // thumbnails
  83.     short    duplex;                            // 0: no duplex; 1: is short edge; 2 is long edge
  84.     unsigned short    orientation : 1;        // 1 for wide, 0 for tall
  85.     unsigned short    center        : 1;        // 1 for do center
  86.     unsigned short     unused        : 14;        
  87. } PMPrintPaperParms;
  88.  
  89. //    Print Color related parameters
  90. //
  91. typedef struct _printColor {
  92.     unsigned short    doSeparations    : 1;    // 1: separation; 0: composite
  93.     unsigned short    doColors         : 1;    // 1: color printing; 0: b/w printing
  94.     unsigned short    doConvert        : 1;    // 1: convert all color to process color
  95.     unsigned short    doMirror         : 1;    // 1: mirror
  96.     unsigned short    doNegative         : 1;    // 1: negative 
  97.     unsigned short    preserveEPS        : 1;    // 1: preservedEPS color is checked
  98.     unsigned short    unused            : 10;        
  99.     char*            screen;                    // screen name
  100. } PMPrintColorParms;    
  101.  
  102.  
  103. class CIPrint : public CIInterface  {
  104.  
  105. public:
  106.     //    Get and set parameters in print doc panel
  107.     virtual PMXErr    GetPrintDocParms( PMPrintDocParms *pDoc ) = 0;
  108.     virtual PMXErr    SetPrintDocParms( PMPrintDocParms *pDoc ) = 0;    
  109.  
  110.     //    Get and set parameters in print paper panel
  111.     virtual PMXErr    GetPrintPaperParms( PMPrintPaperParms *pPaper) = 0;
  112.     virtual PMXErr    SetPrintPaperParms( PMPrintPaperParms *pPaper) = 0;
  113.  
  114.     //    Get and set parameters in print color panel
  115.     virtual PMXErr    GetPrintColorParms( PMPrintColorParms *pColor) = 0;
  116.     virtual PMXErr    SetPrintColorParms( PMPrintColorParms *pColor) = 0;
  117. } ;
  118.  
  119. #endif
  120.